This invention relates to networks and, more particularly, to file retrieval over networks.
Computer networks are often described using models. One network model, known as the client-server model, consists of users (the clients) and file servers, upon which data is generally stored. In the client-server model, the client generally makes a request to the server, the server services the request, and the server sends the reply back to the client. Typically, the ratio of clients to servers is very high.
As expected, the server is typically a very powerful, high-capacity machine, including perhaps multiple processors and tremendous storage capacity. On the other hand, the clients which occupy the network may come in a variety of configurations. Typically, however, the clients are more modest in their hardware features than servers.
Retrieval of data by a client from a server involves a connection between the client and the server over the network. This connection (sometimes referred to as a “socket”) remains viable (or open) for the duration of the request. The connection takes time to initiate, making network accesses generally slower than local accesses, such as accesses to a client's hard disk. Furthermore, each connection between a client and a server consumes bandwidth. The available bandwidth on a network is finite.
One way to diminish network bandwidth is to broadcast data from a server to the network. When data is broadcast over the network, a single socket is opened. All clients on the network may receive the data, including some unintended recipients. Multicast transmission is another option for minimizing network bandwidth. Like broadcasting, multicasting is the process of sending a message or data simultaneously to more than one destination on a network. With multicasting, however, the intended clients may be specifically limited; unintended recipients are not able to access to the transmitted data.
For some clients, local retrieval of server files or data may be desirable, both to speed access and to diminish the bandwidth expended on the network. However, the needed files may be large in comparison to the capacity of the client to store the files locally.
Thus, a need exists to distribute a file system located on a server to one or more clients in accordance with the distinct characteristics of each client.